package gui_demo;
/*
    案例3：
        猜数字

* */

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

public class GuessNumber {
    public static void main(String[] args) {
        // 窗体及设置
        JFrame jf = new JFrame();// 创建窗口对象
        jf.setSize(400, 300);// 设置宽高（单位是px像素）
        // 基本设置
        jf.setTitle("猜数字");// 1. 设置标题
        jf.setLocationRelativeTo(null);// 2.居中显示
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 3.关闭窗口时，退出程序 JFrame.EXIT_ON_CLOSE / 3
        jf.setAlwaysOnTop(true);// 4.置顶
        jf.setLayout(null);// 取消页面的默认布局

        // 文本标签
        JLabel test = new JLabel("系统产生了一个1-100之间的数字，请猜一猜");
        test.setBounds(70, 50, 350, 20);
        jf.add(test);
        // 文本框
        JTextField textField = new JTextField();
        textField.setBounds(118, 100, 150, 20);
        jf.add(textField);
        // 按钮
        JButton btn = new JButton("我猜");
        btn.setBounds(150, 150, 100, 20);
        jf.add(btn);
        int number = new Random().nextInt(100) + 1;
        // 添加我猜按钮点击事件
        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                // 获取文本框中的数据
                String strNumber = textField.getText().trim();
                // 非空判断
                if (strNumber.equals("")) {
                    JOptionPane.showMessageDialog(jf, "猜的数字不能为空！");
                    return;
                }
                // 获取文本框中的数据(String)转换成int
                int guessNumber = Integer.parseInt(strNumber);
                // 与正确的答案进行对比 -> 弹框提示对应内容
                if (guessNumber < 1 || guessNumber > 100) {
                    JOptionPane.showMessageDialog(jf, "你猜的数字超出了范围");
                    textField.setText("");
                } else if (guessNumber > number) {
                    JOptionPane.showMessageDialog(jf, "猜大了！");
                    textField.setText("");
                } else if (guessNumber < number) {
                    JOptionPane.showMessageDialog(jf, "猜小了！");
                    textField.setText("");
                } else {
                    JOptionPane.showMessageDialog(jf, "恭喜你，猜中了！");
                }
            }
        });


        jf.setVisible(true); // 显示窗口，一般放在最后
    }
}
